The use of data processors to manipulate data is well known. Many general purpose data processors include the ability to manipulate specific bits of data by loading data into one or more registers and executing various rotation commands, masking commands, and logic commands. Examples of general purpose data processors used to implement a wide variety of specific functions include Reduced Instruction Set Computer (RISC) microprocessors, Complex Instruction Set Computer (CISC) microprocessors, and microcontrollers.
General purpose processors are generally limited in their ability to execute real-time applications that require bit processing. For example, a general purpose data processor performing an application that includes manipulating compressed data will generally access specific bits of a data word before a desired operation can be performed on the data. The specific bits are accessed by loading the data word, or words, containing the specific bits to be accessed into registers of the general purpose data processor and a sequence of operations is performed using the registers to obtain the required bits. The time taken to implement these steps can limit the type of real-time operations that can be supported by the data processor. In applications requiring high-speed real-time operations, such as display of video/graphics, this problem is more pronounced. Therefore, a method and system that allows for efficient bit manipulation by a general purpose data processor would be useful.